030d4718e5596884c766b6e3e5b1c54fe23f6dd8,src/java/org/apache/cassandra/cache/SerializingCache.java,SerializingCache,replace,#K#V#V#,198

Before Change


        FreeableMemory mem = serialize(value);
        if (mem == null)
            return false; // out of memory.  never mind.
        V oldValue = deserialize(old);
        boolean success = oldValue.equals(oldToReplace) && map.replace(key, old, mem);

        if (success)

After Change



        V oldValue;
        // reference old guy before de-serializing
        if (!old.reference())
            return false; // we have already freed hence noop.
        try
        {
             oldValue = deserialize(old);
        }
        finally
        {